package com.tripcube.ai.model.entity;

import lombok.Data;
import java.time.LocalDateTime;

/**
 * 文档实体类
 * 用于存储和管理AI系统中的文档信息
 * 
 * @author alander
 */
@Data
public class Document {
    
    /**
     * 文档ID，系统内部唯一标识
     */
    private String documentId;
    
    /**
     * 文件ID，映射到AddFile/DescribeFile接口的FileId
     */
    private String fileId;
    
    /**
     * 文件名称，映射到FileName字段
     */
    private String fileName;
    
    /**
     * 原始文件名称
     */
    private String originalName;
    
    /**
     * 文件类型，映射到FileType字段
     */
    private String fileType;
    
    /**
     * 文件MD5值，用于文件完整性校验
     */
    private String fileMd5;
    
    /**
     * 文档状态，映射到Status字段（如：PARSE_SUCCESS）
     */
    private String status;
    
    /**
     * 知识库ID，文档提交索引后的关联知识库
     */
    private String knowledgeBaseId;
    
    /**
     * 分类ID，映射到CategoryId字段
     */
    private String categoryId;
    
    /**
     * 文件访问URL
     */
    private String fileUrl;
    
    /**
     * 文档内容，来自检索或单独的API
     */
    private String content;
    
    /**
     * 解析器类型，默认使用DASHSCOPE_DOCMIND
     */
    private String parser = "DASHSCOPE_DOCMIND";
    
    /**
     * 文件大小（字节），映射到SizeInBytes字段
     */
    private Long sizeInBytes;
    
    /**
     * 错误信息，处理失败时的错误描述
     */
    private String errorMessage;
    
    /**
     * 创建时间，映射到CreateTime字段
     */
    private LocalDateTime createTime;
    
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    
    /**
     * 创建者
     */
    private String createBy;
    
    /**
     * 更新者
     */
    private String updateBy;
}